package com.cskaoyan.javase.oop2.final9.method2;

/**
 * @description: final修饰方法
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * final修饰方法：代表最终的方法，不是无法被继承的方法，而是无法被重写的方法。final可以被继承
 * - final修饰方法，就把方法锁住了，任何继承这个方法的类都无法覆盖该方法
 * - 如果一个方法已经能够满足需求，并且明确知道它不应该被修改，修改会产生问题
 *   - 可以将方法设置成final方法
 *   - 否则，正常情况下，不要随便使用final修饰方法
 *
 *   final修饰方法在开发中很常用，你希望别人不要乱改你的方法实现，这个时候你就把方法加上final
 *
 */
public class Demo {
    public static void main(String[] args) {
        Son son = new Son();
        son.test();
    }
}

class Father{
    public final   void test(){
        System.out.println("Father");
    }
    public final void eat(){
        //为了防止某些人吃饭不太正常 于是这个方法设置成final修饰
        System.out.println("人要好好吃饭！");
    }
}

class Son extends Father{
    //@Override
    //public void test() {
    //    //'test()' cannot override 'test()' in 'com.cskaoyan.javase.oop2.final9.method2.Father'; overridden method is final
    //}
}